package utils

import "fmt"

// 定义一个 Set 类型，使用 map 实现
type Set map[interface{}]bool

// 添加元素到 Set
func (s Set) Add(value interface{}) {
	s[value] = true
}

// 从 Set 中删除元素
func (s Set) Remove(value interface{}) {
	delete(s, value)
}

// 检查元素是否在 Set 中
func (s Set) Contains(value interface{}) bool {
	_, exists := s[value]
	return exists
}

// 获取 Set 的大小
func (s Set) Size() int {
	return len(s)
}

// 清空 Set
func (s Set) Clear() {
	for k := range s {
		delete(s, k)
	}
}

// 打印 Set 的内容
func (s Set) Print() {
	for k := range s {
		fmt.Print(k, " ")
	}
	fmt.Println()
}
